package cn.kmbeast.service;

import cn.kmbeast.pojo.api.Result;
import cn.kmbeast.pojo.dto.query.extend.MessageQueryDto;
import cn.kmbeast.pojo.entity.Message;
import cn.kmbeast.pojo.vo.MessageVo;

import java.util.List;

public interface MessageService {
    Result<Void> batchSave(List<Message> messages);

    /**
     * 通知接收方  评论被回复消息
     * @param message 评论的消息
     * @return Result<Void>
     */
    Result<Void> evaluationsReplySave(Message message);

    /**
     * 通知接受方 点赞消息
     * @param message  点赞的消息
     * @return Result<Void>
     */
    Result<Void> evaluationsUpvoteSave(Message message);

    /**
     * 系统发送消息
     * @param messages  系统发送的消息
     * @return Result<Void>
     */
    Result<Void> systemInfoSave(List<Message> messages);

    /**
     *  通知用户健康模型警告消息
     * @param messages 健康模型警告消息
     * @return Result<Void>
     */
    Result<Void> dataWordSave(List<Message> messages);

    Result<Void> batchDelete(List<Long> ids);

    Result<List<MessageVo>> query(MessageQueryDto messageQueryDto);

    /**
     * 给全部用户推送消息
     * @param message
     * @return
     */
    Result<Void> systemInfoUsersSave(Message message);

    /**
     * 清除消息 已读
     * @param messageQueryDto 根据用户Id
     * @return Result<Void>
     */
    Result<Void> clearMessage(MessageQueryDto messageQueryDto);
}
